﻿////////////////////////////////////////////////////////////////////////////////////////////////////
// <copyright file="ModBackup.cs" company="SingularityShift.com">
// Copyright (c) 2010 SingularityShift.com. All rights reserved.
// </copyright>
// <author>Ben McClure</author>
// <email>ben@singularityshift.com</email>
// <date>11/20/2010</date>
// <summary>Implements the mod backup class</summary>
////////////////////////////////////////////////////////////////////////////////////////////////////
namespace GameLib.Backups.Components
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using GameLib.Games;

    ////////////////////////////////////////////////////////////////////////////////////////////////////
    /// <summary>   Modifier backup. </summary>
    ///
    /// <remarks>   Ben McClure, 11/21/2010. </remarks>
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    public class ModBackup : AbstractModBackup, IModBackup, IBackup
    {
        #region Constructors

        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Constructor. </summary>
        ///
        /// <remarks>   Ben McClure, 11/21/2010. </remarks>
        ///
        /// <param name="mod">  The modifier. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        private ModBackup(IMod mod)
        {
            Mod = mod;
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Constructor. </summary>
        ///
        /// <remarks>   Ben McClure, 11/21/2010. </remarks>
        ///
        /// <param name="mod">          The modifier. </param>
        /// <param name="outputFile">   The output file. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        public ModBackup(IMod mod, string outputFile)
            : this(mod)
        {
            OutputPath = outputFile;
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Constructor. </summary>
        ///
        /// <remarks>   Ben McClure, 11/21/2010. </remarks>
        ///
        /// <param name="mod">      The modifier. </param>
        /// <param name="selector"> The selector. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        public ModBackup(IMod mod, IBackupSelector selector)
            : this(mod)
        {
            selector.Show();
            OutputPath = selector.Dialog.FileName;
        }
        #endregion
    }
}
